#ifndef __YT_RECORDER_PCM_H__
#define __YT_RECORDER_PCM_H__

#include "YTQueue.h"

class YTRecorderPcm {
public:
	 static YTRecorderPcm &Instance();
    ~YTRecorderPcm();
	class IOnEvent {
    public:		
        virtual int on_start_pcm() = 0;
        virtual int on_data_pcm(const void* data, unsigned int size) = 0;
        virtual int on_stop_pcm() = 0;
    };
	void Init(YTQueue * pQueue);	
    int Start();
    int Resume();
    int Pause();
    int Stop();
    int SetEventListener(IOnEvent* _pEvent);
private:
	YTRecorderPcm();
private:
	class YTRecorderPcmImpl;
	static YTRecorderPcm  mInstance;
    YTRecorderPcmImpl *  mRecorderPcmImpl;
};


#endif
